This is a sample Bunker 2 patch, replacing exactly one room with really terrible image mapping.  This is one of Bunker's smallest rooms, so the patch isn't phenomenal.

This is meant to be applied to a PD (U) v1.1 rom, though 1.0 might works as well.  

Room 4 is the doorway leading out into snow, just before the end of solo.  In complex, it replaces a hallway between the room with the vent under a ramp and the room with the walkways over the hole -like *that* will help at all.

Just apply the patch, enter combat simulator, select complex and go.  Do not, under any circumstance try to play G5 multi - it is now missing a bit of data...

Clipping is not yet supported.  Format is similar though.  Hopefully a fully-functional Bunker II can be inserted in PD, since it always was one of my favorite stages.  Archives wouldn't be a bad addition either.

Since this gets uploaded in one huge clump, PD stage uploading is probably possible.  I also have an idea about how GE stage inserting could work, but it is far more trouble since it loads in room-by-room, ditching old data.  Then again, might be as easy as pointer redirection...

--------------
nitty gritty:
(copy/pasted from notes - sorry if a bit messy)

Background data:
xx xx xx xx	yy yy yy yy	zz zz zz zz
compressed block 1
compressed block 2

x: uncompressed filesize of first compressed block
y: offset to pointer from first block, prior to two final compressed files
z: offset to room model compressed block from first block


ie:complex
F40BD0: bg offsets
F40BDC: background file
F41236: start of stage models
...
00000000
F49E60: pointer to memory
F49E64: compressed image index (all images used in stage are listed here)

followed by a CRC file containing:
12 byte check values using first point in room(oy)
	one for each room
2 byte count of double words from 0x30 in file to end (non-header data)
	(filesize-0x30)/8
1 additional byte, unknown use, guessing higher count (set to 0 for now)

point check samples:
actual versus file
00 76 FF 8A 00 3B 	FF 89 FF 8A FF C4	00 76 00 77 00 3B 
01 76 FF 8A FF 63 	FE 89 FF 89 FF 62	01 76 00 76 00 9E 
FF C5 FF 8A 00 3B 	FF C5 FF 89 FF C5	00 3C 00 76 00 3C 
00 76 FE C5 FF 4F 	FF 89 FE C5 FF 4F	00 77 01 3B 00 B2 

!positive values, store negative normally


it works like this:
negative value is created first
z point is made negative if not already (10000-value)
+ y point shifted (negative if not already)
+ x point shifted (negative if not already)



*******************************************************************************
compressed block 1:
--------	off. to room "0"	off. to vis	off. to global vis
--------	--------

room data (0x14):
(when computing offset to model data, use decompresed file sizes!)
off. to model	x pos.	y pos.	z pos.
80FF0000


global vis:	same as GE?
for nothing, write 00010000 00000000

visibility (in 3s?)
in room # order (assuming, really...)
###1 ###2 ###3 0000
in room 1, then show 2 and 3 (hmm... maybe wrong)
can also be redundant (ie: 0002 001C 0002 0000)
ends with 0000 0000 0000 0000

windows:
##000000	xfloat,yfloat,zfloat etc.
# equals number of points in following window (usually 4)
ends with 0-sided poly (00000000)
same as GE

*******************************************************************************
2C ROOMS - from F4004C
F41234
F413AC
F416E8
F41838
F41B0C
F41DDC
F420C8
F42620
F42768
F42904
F42A00
F42CC0
F42E0C
F4307C
F43280
F434AC
F43620
F437B4
F4394C
F43AF8
F44100
F44A90
F44C68
F44D9C
F45860
F45D64
F45F98
F462A8
F463E4
F46A50
F46BD0
F46DD0
F46F80
F47178
F4734C
F47624
F477AC
F478F0
F47B10
F483B4
F49308
F49520
F49734
F49A10
F49C22
 - F49E5C
